package com.wan.base

import android.os.Handler
import android.os.Message
import android.support.v7.app.AppCompatActivity
import com.wan.uitls.HandlerMessageListener
import java.lang.ref.WeakReference


/**
 * 处理内存泄漏的问题
 * 感觉kotlin 版的 和java版的格格不入,暂时未发现出现内存泄漏的现象
 * 参考 : @link https://www.jianshu.com/p/0ee88812d73e
 * 初步解释就是kotlin  class 修饰的类基本上就是public static ,而静态内部类不会引用外部对象
 *
 * @description 暂时无用
 *
 */
class BaseHandler(appCompatActivity: AppCompatActivity, private val listener: HandlerMessageListener) : Handler() {

    private val weakReference: WeakReference<AppCompatActivity> = WeakReference(appCompatActivity)
    override fun handleMessage(msg: Message?) {
        super.handleMessage(msg)
        weakReference.get() ?: return
        listener.handlerMessage(msg!!)
    }

}